#ifndef LINUX_SEMAPHORE_H
#define LINUX_SEMAPHORE_H

#include <list.h>

typedef struct sem_t
{
    uint32_t count;
    list_t wait_list;
} sem_t;

void init_sem(sem_t *sem, uint32_t count);

void sem_wait(sem_t *sem);

void sem_notify(sem_t *sem);

uint32_t sem_count(sem_t *sem);
#endif